MoleBox FAQ - What is MoleBox?

Forward to DLL embedding

What is exe packer?

Executable packer is a program designed to process an application, in order to decrease its size, and (optionally) to protect the original exe file. Molebox is an exe packer with the ability to protect supplementary application files.

What is the difference between exe packer and self-extracting archive?

When you run a self-extracting archive, it extracts its contents to the temporary directory, and runs the application from there. Runtime packer does not extract packed files.

How does MoleBox work?

MoleBox parses the executable and processes its structure. First, it scans the application import table and replaces WinAPI functions dealing with the packed data with its own functions. Second, it packs the segments of EXE file. Third, it appends the data files and DLLs. MoleBox also adds a small launcher module to the application.

How can I see, what it does with my app?

MoleBox catches all file opening/reading/closing operations, DLL's loading, functions import, and substitutes them with its own functions. To see what it does exactly with your application, pack it with "Log box files access actions" option set, run and see the log file .exe-up.txt.

Can I pack an application twice with MoleBox?

No. However, you can use two or more different packers at the same time, if necessary.

Can I pack an installation package with Molebox?

Typically, no. Installation packages usually utilize a kind of integrity protection, which prevents the executable file from modifications. If you'd like to decrease the size of the installation package, you can use self-extracting archive (for example, WinRAR) or installation builder with compression plug-in (like InnoSetup with 7zip plug-in).

If the application and its data files are loaded directly to memory, does this set the minimum required RAM on the end-user computer equal to the overall application size?

No, we do not load all the data to the RAM in the same time. Only a small 'launcher' module is loaded, and it extracts the necessary data only when they are required.